home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Programming / LEDA / incl / LEDA.020+881 / edge_set.h < prev    next >
C/C++ Source or Header  |  1994-08-05  |  1KB  |  48 lines

  1. /*******************************************************************************
  2. +
  3. +  LEDA  3.1c
  4. +
  5. +
  6. +  edge_set.h
  7. +
  8. +
  9. +  Copyright (c) 1994  by  Max-Planck-Institut fuer Informatik
  10. +  Im Stadtwald, 6600 Saarbruecken, FRG     
  11. +  All rights reserved.
  12. *******************************************************************************/
  13.  
  14.  
  15. #ifndef LEDA_EDGE_SET_H
  16. #define LEDA_EDGE_SET_H
  17.  
  18. #include <LEDA/graph.h>
  19.  
  20.  
  21.  
  22. //------------------------------------------------------------------------------
  23. // edge_set  
  24. //------------------------------------------------------------------------------
  25.  
  26. class edge_set {
  27. graph* g;
  28. list(edge) L;
  29. graph_array(edge) A;
  30. public:
  31. void insert(edge x)  { if (A.inf(x) == nil) A.entry(x) = Convert(L.append(x)); }
  32. void del(edge x)     { if (A.inf(x) != nil) 
  33.                         { L.del(list_item(A.inf(x))); A.entry(x) = nil;} 
  34.                       }
  35. bool member(edge x)      { return (A.inf(x) != nil) ? true:false; }
  36. edge choose()  const     { return L.head(); }
  37. int  size()    const     { return L.length(); }
  38. bool empty()   const     { return L.empty(); }
  39. void clear()             { L.clear(); A.init(*g,nil); }
  40.  
  41.          edge_set(const graph& G) { g = (graph*)&G; A.init(G,nil);}
  42. virtual ~edge_set()               { L.clear(); A.clear(); }
  43. };
  44.  
  45.  
  46. #endif
  47.